python爬虫

您所在的位置:网站首页 爬虫模拟登录 图片验证码 python爬虫

python爬虫

2023-09-05 09:06| 来源: 网络整理| 查看: 265

滑动验证距离

分别获取验证码背景图和滑块图两张照片,然后利用opencv库,通过高斯模糊和Canny算法进行处理,然后通过matchTemplate方法进行两张图的匹配,获得滑动距离。需要注意的是,知乎验证码在进行操作的时候,需要在原有基础上再向右偏移10px距离

def get_distance(self, bg_img_path='./bg.png', slider_img_path='./slider.png'): """获取滑块移动距离""" # 背景图片处理 bg_img = cv.imread(bg_img_path, 0) # 读入灰度图片 bg_img = cv.GaussianBlur(bg_img, (3, 3), 0) # 高斯模糊去噪 bg_img = cv.Canny(bg_img, 50, 150) # Canny算法进行边缘检测 # 滑块做同样处理 slider_img = cv.imread(slider_img_path, 0) slider_img = cv.GaussianBlur(slider_img, (3, 3), 0) slider_img = cv.Canny(slider_img, 50, 150) # 寻找最佳匹配 res = cv.matchTemplate(bg_img, slider_img, cv.TM_CCOEFF_NORMED) # 最小值,最大值,并得到最小值, 最大值的索引 min_val, max_val, min_loc, max_loc = cv.minMaxLoc(res) # 例如:(-0.05772797390818596, 0.30968162417411804, (0, 0), (196, 1)) top_left = max_loc[0] # 横坐标 return top_left View Code 滑块运动轨迹

模拟人的行为,到缺口位置时,继续向后滑动一段距离,然后再回退到大致准确位置

def get_tracks(self, distance): '''滑动轨迹 ''' tracks = [] v = 0 t = 0.2 # 单位时间 current = 0 # 滑块当前位移 distance += 10 # 多移动10px,然后回退 while current


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3